Data storage systems are arrangements of hardware and software that include one or more storage processors coupled to arrays of non-volatile storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives, for example. The storage processors service storage requests, arriving from host machines (“hosts”), which specify files or other data elements to be written, read, created, or deleted, for example. Software running on the storage processors manages incoming storage requests and performs various data processing tasks to organize and secure the data elements stored on the non-volatile storage devices.
Many data storage systems employ caches for promoting high-speed access to data. These caches are typically made from fast, volatile memory, which a data storage system can read and/or write quickly without experiencing the delays that normally accompany reads and writes of magnetic disk drives or flash drives. As is known, a write cache may be used to store data being written by hosts to a data storage system. In some variants, the write cache can acknowledge completion to a host once the data being written are stored in the cache, without having to wait for the data to be flushed to disk. In addition, a read cache may be used to store frequently-accessed data, i.e., for servicing host read requests without always having to obtain the requested data from disk. As used herein, the term “disk” refers to any type of nonvolatile storage device, including a magnetic disk, optical disk, flash drive, and the like, as well as combinations thereof, such as groups of such devices or of portions thereof accessed as a unit.